Method and apparatus to provision a network appliance

ABSTRACT

A method and apparatus to provision a network node such as a network appliance is described.

BACKGROUND

A network typically comprises a plurality of network nodes connectedtogether by a communications medium. A network node may comprise, forexample, a switch, router, personal computer, server, network applianceor any other network device. Each time a network node is connected to anetwork, the network node may need to be configured with some networkinformation, such as a network address, control codes and so forth. Thisis typically performed using an input device attached to the networknode, such as a keyboard, a keypad, a touch pad, a touch screen, apointing device and so forth.

Conventional input devices for use with a network node, however, may beunsatisfactory for a number of reasons. For example, in many instancesthe network nodes may be located within a relatively confined area, suchas a vertical storage rack. This minimizes the amount of available spacefor use of conventional input devices. Further, some conventional inputdevices may require a user to enter a significant amount of informationto configure each network node. This may occur, for example, wheneverthe input device uses a limited number of physical keys and ahierarchical menu structure. The user may have to traverse many levelsof the menu structure to enter the desired network information. This maybe tedious and time-consuming work, particularly if a relatively largenumber of network nodes require such configuration.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter regarded as embodiments of the invention isparticularly pointed out and distinctly claimed in the concludingportion of the specification. Embodiments of the invention, however,both as to organization and method of operation, together with objects,features, and advantages thereof, may best be understood by reference tothe following detailed description when read with the accompanyingdrawings in which:

FIG. 1 is a front view of a network node suitable for use with oneembodiment of the invention.

FIG. 2 is a block diagram of an input system in accordance with oneembodiment of the invention.

FIG. 3 is a block flow diagram of operations performed by an inputdevice in accordance with one embodiment of the invention.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of the embodiments ofthe invention. It will be understood by those skilled in the art,however, that the embodiments of the invention may be practiced withoutthese specific details. In other instances, well-known methods,procedures, components and circuits have not been described in detail soas not to obscure the embodiments of the invention.

The embodiments of the invention comprise a method and apparatus toenter information into a network node, such as a switch, router,personal computer, server, network appliance or any other networkdevice. In one embodiment of the invention, the network node may be anetwork appliance that may operate with an input device. The term “inputdevice” as used herein may refer to any hardware or software used toenter information into a network node. In one embodiment of theinvention, the input device may comprise, for example, an activationcomponent, a microphone, a display, and software components to include aconfiguration component and a speech recognition component.

In one embodiment of the invention, a user may initiate the entering ofinformation into a network node by selecting a parameter using theactivation component. The term “activation component” as used herein mayrefer to hardware or software used to select a parameter. The term“parameter” as used in this context may comprise a set of informationfor use by the network node, such as a network address, a device name,one or more control codes, a unique device identifier, a pass code,security information, and any other information needed by the networknode to perform its intended function. In one embodiment of theinvention, the activation component may be a button. A user may select adesired parameter by pressing the button a predetermined number oftimes. In other words, each parameter may be assigned to a predeterminednumber of button presses. For example, assume a network addressparameter corresponds to three button presses. The user could press thebutton three times and select the network address parameter forconfiguration. Once the desired parameter is selected, the user may thenprovide a value for the parameter. The term “value” as used herein mayinclude any combination of numbers, letters and symbols comprising a setof information for a parameter. In the above example using a networkaddress parameter, the value may be a network address. The user mayprovide the value by verbally speaking the value into the microphone.The microphone may receive the analog voice signals generated by theuser, and use the speech recognition software to determine the valuefrom the analog voice signals. The value may be sent to the visualdisplay for visual confirmation. The confirmed value may then beassociated and stored with the selected parameter.

It is worthy to note that any reference in the specification to “oneembodiment” or “an embodiment” means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment of the invention. The appearancesof the phrase “in one embodiment” in various places in the specificationare not necessarily all referring to the same embodiment.

Referring now in detail to the drawings wherein like parts aredesignated by like reference numerals throughout, there is illustratedin FIG. 1 a system suitable for practicing one embodiment of theinvention. FIG. 1 is a front view of a network node suitable for usewith one embodiment of the invention. FIG. 1 illustrates a network node100 comprising a display 102, a button 104 and a microphone 106. It canbe appreciated, however, that these elements are shown as an example andare not meant to limit the embodiments of the invention. Additionalconfigurations incorporating additional elements, removing elements, orcombining different elements may be used and still fall within the scopeof the invention. For example, in one embodiment of the invention aplurality of buttons may be used with the input device.

FIG. 2 is a block diagram of a system in accordance with one embodimentof the invention. As shown in FIG. 2, an input system 200 may comprise aprocessor 202, an input/output (I/O) adapter 204, an operator interface206, a memory 210 and a disk storage 218. Memory 210 may store computerprogram instructions and data. The term “program instructions” mayinclude computer code segments comprising words, values and symbols froma predefined computer language that, when placed in combinationaccording to a predefined manner or syntax, cause a processor to performa certain function. Examples of a computer language may include Java, C,C++ and assembly. Processor 202 executes the program instructions, andprocesses the data, stored in memory 210. Disk storage 218 stores datato be transferred to and from memory 210. I/O adapter 204 communicateswith other devices and transfers data in and out of the computer systemover connection 224. Examples of other devices may include a microphoneand display, such as microphone 106 and display 102, respectively.Operator interface 206 may interface with a system operator by acceptingcommands and providing status information. All these elements areinterconnected by bus 208, which allows data to be intercommunicatedbetween the elements.

Processor 202 can be any type of processor capable of providing thespeed and functionality required by the embodiments of the invention.For example, processor 202 could be a processor from family ofprocessors made by Intel Corporation, Motorola Incorporated, SunMicrosystems Incorporated, Compaq Computer Corporation and others.Processor 202 may also comprise a digital signal processor (DSP) andaccompanying architecture, such as a DSP from Texas InstrumentsIncorporated.

In one embodiment of the invention, memory 210 and disk storage 218 maycomprise a machine-readable medium and may include any medium capable ofstoring instructions adapted to be executed by a processor. Someexamples of such media include, but are not limited to, read-only memory(ROM), random-access memory (RAM), programmable ROM, erasableprogrammable ROM, electronically erasable programmable ROM, dynamic RAM,magnetic disk (e.g., floppy disk and hard drive), optical disk (e.g.,CD-ROM) and any other media that may store digital information. In oneembodiment of the invention, the instructions are stored on the mediumin a compressed and/or encrypted format. As used herein, the phrase“adapted to be executed by a processor” is meant to encompassinstructions stored in a compressed and/or encrypted format, as well asinstructions that have to be compiled or installed by an installerbefore being executed by the processor. Further, client 200 may containvarious combinations of machine-readable storage devices through variousI/O controllers, which are accessible by processor 202 and which arecapable of storing a combination of computer program instructions anddata.

Memory 210 is accessible by processor 202 over bus 208 and includes anoperating system 216, a program partition 212 and a data partition 214.In one embodiment of the invention, operating system 216 may comprise anoperating system (OS) sold by Microsoft Corporation, such as MicrosoftWindows® 95, 98, 2000 and NT, Sun Microsystems Inc. and Virginia LinuxSystems, Inc., for example. Program partition 212 stores and allowsexecution by processor 202 of program instructions that implement thefunctions of each respective system described herein. Data partition 214is accessible by processor 202 and stores data used during the executionof program instructions.

In one embodiment of the invention, program partition 212 containsprogram instructions that will be collectively referred to herein as aconfiguration component and a speech recognition component. Althoughthis embodiment of the invention uses two components, it can beappreciated that the functionality performed by these components may becombined into fewer components, or separated into additional components,and still fall within the scope of the invention.

I/O adapter 204 may comprise a network adapter or network interface card(NIC) configured to operate with any suitable technique for controllingcommunication signals between computer or network devices using adesired set of communications protocols, services and operatingprocedures, for example. In one embodiment of the invention, I/O adapter204 may operate, for example, in accordance with the TransmissionControl Protocol (TCP) as defined by the Internet Engineering Task Force(IETF) standard 7, Request For Comment (RFC) 793, adopted in September,1981, and the Internet Protocol (IP) as defined by the IETF standard 5,RFC 791, adopted in September, 1981, both available from “www.ietf.org”,although the embodiments of the invention are not limited to thiscontext. I/O adapter 204 also includes appropriate connectors forconnecting I/O adapter 204 with a suitable communications medium. I/Oadapter 204 may receive communication signals over any suitable mediumsuch as copper leads, twisted-pair wire, co-axial cable, fiber optics,radio frequencies, and so forth.

The operations of systems 100 and 200 may be further described withreference to FIG. 3 and its accompanying examples. Although FIG. 3 aspresented herein may include a particular processing logic, it can beappreciated that the processing logic merely provides an example of howthe general functionality described herein can be implemented. Further,each operation within a given processing logic does not necessarily haveto be executed in the order presented unless otherwise indicated.

FIG. 3 is a block flow diagram of the programming logic performed by aninput system in accordance with one embodiment of the invention. Asshown in FIG. 3, a parameter may be selected at block 302. An example ofa parameter may include a network address. The network address may be,for example, an IP address in accordance with the TCP/IP Specification.An analog voice signal having a value for the parameter may be receivedat block 304. The analog voice signal may comprise, for example, thewords, numbers and phrases spoken by a human. The value may bedetermined from the analog voice signal at block 306. This may beperformed by, for example, the speech recognition component of inputsystem 200. The determined value may be associated with the selectedparameter and stored in memory.

The selecting performed at block 302 may be accomplished a number ofdifferent ways. For example, input system 200 may include an activationcomponent that is used to select a parameter. In one embodiment of theinvention, the activation component may comprise a button such as button104. Input system 200 may receive a signal for each time the button ispressed or activated. Each press of the button may generate a signal.Input system 200 may keep a count of the number of times the signal isreceived, and select the parameter corresponding to the number.Additional examples of an activation component may include, for example,any type of selection device, such as a plurality of buttons, switches,knobs, rotation devices, touch screen, touch pad and so forth.

In one embodiment of the invention, the activation component may includethe speech recognition module to retrieve a parameter name or number,and the configuration module to select the parameter corresponding tothe retrieved parameter name or number. The user may select a parameterby speaking a parameter identifier such as a number or parameter name.Once the parameter is selected, the user may speak the value for theselected parameter. In this embodiment of the invention, the user couldprogram a network node completely using voice commands.

In yet another embodiment of the invention, the network device may beconfigured to perform automatic selection during an initialization orconfiguration process. Whenever a network device is attached to anetwork for the first time, the network node may automatically initiatea configuration process. The term “automatically” as used herein mayrefer to performing a function without human action or intervention toinitiate the function. In this embodiment of the invention, the inputsystem 200 may be configured to prompt for audible user input forvarious parameters in a predetermined sequence. The user may alsoinitiate the configuration process manually using the input device aswell.

In yet another embodiment of the invention, the input device may includea knob that may be rotated to select a number from an available set ofnumbers, with each number representing a parameter. In anotherembodiment of the invention, the knob may be rotated with apredetermined amount of rotation to display a parameter identifier, suchas a number or parameter name, on a display such as display 102.

Once a parameter has been selected at block 302 and a value entered atblock 304, input system 200 may send the determined value to a display,such as display 102. In this manner, a user may be able to perform avisual confirmation that the intended value was correctly entered intoinput system 200. The user may indicate confirmation of the displayedvalue verbally by speaking a predefined command word or phrase such as“confirmed,” or manually using the activation component.

The speech recognition component may use any type of speech recognitiontechnology, including speech dependent and speech independenttechnology. Speech dependent technology typically requires some trainingto recognize speech for a particular user to account for the user'sunique speech characteristics, such as pronunciation, dialect, voiceinflections, tones, tone length, and so forth. Speech independenttechnology typically operates independent from a particular speaker, andmakes certain assumptions regarding speech characteristics. Depending onthe set of information required for recognition by a particularembodiment of the invention, either or both forms of speech recognitionmay be appropriate. Any type of language may be implemented as part ofthe speech recognition component depending on a desired user.

The operation of system 100 and the flow diagram shown in FIG. 3 may bebetter understood by way of example. In this example, a network node maycomprise a network appliance having an activation component comprising abutton, such as button 104. Once the network appliance is connected tothe network, a user may desire to configure the network appliance with anetwork address and device name, for example. The network address may bea network address for the network node being configured, or anothernetwork node to communicate with the configured network node such as adefault gateway, next hop router, network address translation (NAT)server, port address translation (PAT) server, proxy server, virtualprivate network (VPN) gateway, and so forth. In this example, a networkaddress parameter may correspond to one (1) press of the button, while adevice name parameter may correspond to two (2) presses of the button.The user may select the network address parameter by pressing the buttonone (1) time. The configuration module of input system 200 would count asingle signal and understand that the user selected the network addressparameter. Once the user selects the network address parameter, the usermay speak the numbers comprising a value for the network addressparameter, which in this example would be an IP network address of“000.000.000.000x.” If a subnet mask is needed, the configuration modulemay be configured to accept both a network address and subnet mask forthe network address parameter, or a separate parameter may be definedfor the subnet mask portion of the network address. Once the user speaksthe numbers comprising the IP network address, a microphone such asmicrophone 106 would received analog voice signals and send thesesignals to the speech recognition component. The analog voice signalsmay be converted to digital signals prior to being received by thespeech recognition component. The speech recognition component maydetermine the numbers comprising the IP network address from the digitalsignals using conventional speech recognition techniques. Once thenumbers have been determined, the speech recognition component may sendthe determined IP network address to the configuration module. Theconfiguration module may then store the determined IP network addresswith the network address parameter in a lookup table in memory. Theconfiguration module may also send the determined IP network address toa display such as display 102 for confirmation by the user. Confirmationmay be determined by receiving a predetermined verbal acknowledgmentsuch as “confirmed” from the user, or a press of the button.

Once the network address parameter is configured, the user may press thebutton twice to select the device name parameter. The user could thenrepeat the process described above to configure a value for the devicename parameter with a device name such as “Node 1.”

In one embodiment of the invention, the system may be capable ofcolleting the network information during system initialization. Sincesystem initialization may require several minutes, the system bios maybe modified to accept network information during this initializationperiod. This could be accomplished after the system has been givenadequate time (e.g., 1 minute) to initialize the various systemcomponents, such as the network interface cards, memory, processor andso forth, but prior to completion of the initialization process.

While certain features of the embodiments of the invention have beenillustrated as described herein, many modifications, substitutions,changes and equivalents will now occur to those skilled in the art. Itis, therefore, to be understood that the appended claims are intended tocover all such modifications and changes as fall within the true spiritof the embodiments of the invention.

1. A method to enter information, comprising: selecting a parameter fora network device; receiving an analog voice signal having a value forsaid network parameter; determining said value from said analog voicesignal; associating said value with said parameter; and wherein saidselecting comprises: receiving a signal for each time a button isactivated; counting a number of times said signal is received; andselecting said parameter corresponding to said number.
 2. A method toprovision a network appliance, comprising: selecting a parameter bycounting a number of times a key is pressed; receiving voice informationwith a value for said parameter; retrieving said value from said voiceinformation; displaying said retrieved value; and associating saidretrieved value with said parameter.
 3. An article comprising: a storagemedium; said storage medium including stored instructions that, whenexecuted by a processor, result in selecting a parameter for a networkdevice, receiving an analog voice signal having a value for said networkparameter, determining said value from said analog voice signal, andassociating said value with said parameter; and wherein the storedinstructions, when executed by a processor, further result in selectingsaid parameter by receiving a signal for each time a button isactivated, counting a number of times said signal is received, andselecting said parameter corresponding to said number.
 4. An articlecomprising: a storage medium; said storage medium including storedinstructions that, when executed by a processor, result in provisioninga network appliance by selecting a parameter by counting a number oftimes a key is pressed, receiving voice information with a value forsaid parameter, retrieving said value from said voice information,displaying said retrieved value, and associating said retrieved valuewith said parameter.
 5. The article of claim 4, wherein the storedinstructions, when executed by a processor, further result in storingsaid value with said parameter.